Understanding Exceptional Behavior and Exception Flow in Implicit Invocation Systems by Mehdi Bagherzadeh, Hridesh Rajan and Ali Darvish
نویسندگان
چکیده
Exceptions and their implicit control flow complicate modular understanding (reasoning) of both exceptional behavior and exception flow of a system. Such reasoning tasks about exceptions are more complicated in implicit invocation (II) systems, where a subject module can invoke other observer modules without knowing about them and especially behavior and flow of their exceptions. In this work, we motivate and discuss design of an II language model called Ptolemyχ which enables modular reasoning about exceptional behavior and exception flow of event announcement and handling. To enable modular reasoning, first Ptolemyχ’s exception aware specification expressions and boundary exceptions limit the set of exceptions subjects and observers may throw, both checked and unchecked. Second, behavior of such exceptions is specified using exceptional postconditions, adapted to II settings. And third, greybox-based specifications along with exception aware specification expressions expose information about places, in the observers’ implementations, where exceptions are thrown or handled. This work illustrates Ptolemyχ’s reasoning techniques about exceptional behavior and exception flow and evaluates utility of the exception flow reasoning by using it to understand a set of bug patterns for aspect-oriented (AO) programs. It also presents Ptolemyχ’s operational semantics and sound static semantics.
منابع مشابه
Aspect Reasoning by Reduction to Implicit Invocation
Aspect-oriented programming constructs complicate reasoning about program behavior. Our position is that we can reduce key elements of aspect programming to implicit invocation (II) and then use existing work on reasoning about II to reason formally about aspect programs. We map aspect-oriented programs to equivalent programs with join points and advice replaced by event notifications and obser...
متن کاملDesign, Semantics and Implementation of the Ptolemy Programming Language: A Language with Quantified Typed Events
Implicit invocation (II) and aspect-oriented (AO) languages provide software designers with related but distinct mechanisms and strategies for decomposing programs into modules and composing modules into systems. II languages have explicitly announced events that run registered observer methods. AO languages have implicitly announced events that run method-like but more powerful advice. A limit...
متن کاملA Type-and-Effect System for Shared Memory, Concurrent Implicit Invocation Systems
Driven by the need to utilize multicore platforms, recent language designs aim to bring the concurrency advantages of events in distributed publishsubscribe systems to sequential OO programs that utilize the implicit invocation (II) design style. These proposals face two challenges. First, unlike the publishsubscribe paradigm where publisher and subscriber typically do not share state, communic...
متن کاملPanini: A Concurrent Programming Model for Solving Pervasive & Oblivious Interference
Modular reasoning about concurrent programs is complicated by the possibility of interferences happening between any two instructions of a task (pervasive interference), and these interferences not giving out any information about the behaviors of potentially interfering concurrent tasks (oblivious interference). Reasoning about a concurrent program would be easier if a programmer, modularly an...
متن کاملOpen Effects: Programmer-guided Effects for Open World Concurrent Programs
The open world assumption makes the design of a type-and-effect system challenging, especially in concurrent object-oriented languages. The main problem is in the computation of the effects of a dynamically dispatched method invocation, because all possible dynamic types of its receiver are not known statically. Previous work proposes effect annotations that provide a static upper bound on the ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012